// 对axios进行二次封装（给axios设置拦截器）
// 每次发请求，都可能需要带请求头参数（token) ,这时可以在请求拦截器中集中处理。
// 每次发请求后，都可能需要处理响应状态码，这时可以在响应拦截器中集中处理。
// 导入axios插件
import axios from 'axios'

// 1.实例化axios对象

var service = axios.create({
    timeout:10*1000,   //超时时间
    baseURL:'',//请求地址的基准路径（公共前缀）
})
// 2.设置请求拦截器
service.interceptors.request.use(
    (config)=>{
        console.log('service.interceptors.request');

        // 设置请求头参数（携带请求头参数）
        config.headers['Authorization']='Bearer'+''+localStorage.getItem('token');

        return config;
    },
    (error)=>{
        return Promise.reject(error);
    }
)

// 2.设置响应拦截器
service.interceptors.response.use(
    (res)=>{
        return res;
    },
    (error)=>{
        if(error.response.status == 401){
            alert('登录过期，请重新登录！')
            // 自动删除过期的token
            // 自动跳转到登录页
        }else if(error.response.status==404){
            alert('访问路径有误！')
        }else if(error.response.status==500){
            alert('服务器内部错误！')
        }
        return Promise.reject(error);
    }
)
// 3.导出service
    export default service;